package cn.fl.audit.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.audit.dto.AudReturnVisitDTO;
import cn.fl.audit.vo.AudReturnVisitVO;

 /**
 * @Description: 信审回访表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class AudReturnVisitVOTransform {


	/**
	 * DTO 转  VO
	 * @param po AudReturnVisitDTO
	 * @return AudReturnVisitVO
	 */
	public static AudReturnVisitVO toVO(AudReturnVisitDTO dto) {
		AudReturnVisitVO  vo = null;
		if (dto != null) { 
			vo = new AudReturnVisitVO();
			vo.setId(dto.getId());
			vo.setProjectId(dto.getProjectId());//项目ID
			vo.setProIntId(dto.getProIntId());//流程实例ID
			vo.setTimes(dto.getTimes());//融资次数
			vo.setEquipmentNum(dto.getEquipmentNum());//设备数量
			vo.setCarBrandCd(dto.getCarBrandCd());//品牌/车型-数据字典
			vo.setMotorHorsepower(dto.getMotorHorsepower());//发动机马力
			vo.setEmissionStandard(dto.getEmissionStandard());//排放/排量
			vo.setGearbox(dto.getGearbox());//变速箱
			vo.setContainerSize(dto.getContainerSize());//货箱规格（长*宽*高）
			vo.setIsExistTrunc(dto.getIsExistTrunc());//是否含挂车
			vo.setTruncStandard(dto.getTruncStandard());//挂车规格
			vo.setTruncConfig(dto.getTruncConfig());//挂车配置
			vo.setEquipmentName(dto.getEquipmentName());//车辆设备名称
			vo.setYeayAmt(dto.getYeayAmt());//年款
			vo.setUsefulLife(dto.getUsefulLife());//使用年限（二手）
			vo.setMileage(dto.getMileage());//里程数（二手）
			vo.setOtherConfig(dto.getOtherConfig());//其它配置
			vo.setSeating(dto.getSeating());//座位数
			vo.setMainMarketPrice(dto.getMainMarketPrice());//主车价格
			vo.setTruncMarketPrice(dto.getTruncMarketPrice());//挂车价格
			vo.setPickCardCd(dto.getPickCardCd());//提车情况-AUD0024
			vo.setStatusCd(dto.getStatusCd());//上牌情况-AUD0025
			vo.setCardDate(dto.getCardDate());//上牌时间
			vo.setItemPay(dto.getItemPay());//款项缴纳情况
			vo.setLeaseTerm(dto.getLeaseTerm());//融资期限
			vo.setMonthRepayment(dto.getMonthRepayment());//月还款
			vo.setAgentCardStateCd(dto.getAgentCardStateCd());//代扣卡-AUD0026
			vo.setEqmtAddressCd(dto.getEqmtAddressCd());//设备位置-AUD0027
			vo.setVehiclesDoorCd(dto.getVehiclesDoorCd());//车辆上户-AUD0028
			vo.setAffiliatedCompany(dto.getAffiliatedCompany());//挂靠公司名称
			vo.setSubsidyAmt(dto.getSubsidyAmt());//补贴款
			vo.setPickCardTm(dto.getPickCardTm());//提车时间
			vo.setDealerAmt(dto.getDealerAmt());//经销商垫款金额
			vo.setFirstPayPct(dto.getFirstPayPct());//首付比例
			vo.setFinancingAmt(dto.getFinancingAmt());//融资总金额
			vo.setSmallRepaymentAmt(dto.getSmallRepaymentAmt());//小额还款金额
			vo.setLargeRepaymentAmt(dto.getLargeRepaymentAmt());//大额还款金额
			vo.setYearNetAmt(dto.getYearNetAmt());//承租人年净收入
			vo.setLoanPrjAmt(dto.getLoanPrjAmt());//贷款项目及金额
			vo.setYearCostAmt(dto.getYearCostAmt());//年日常生活开销
			vo.setYearDominateAmt(dto.getYearDominateAmt());//年可支配资金
			vo.setIsPress(dto.getIsPress());//大额还款是否有压力
			vo.setGuraRl(dto.getGuraRl());
			vo.setGuraRem(dto.getGuraRem());
			vo.setUgRl(dto.getUgRl());
			vo.setUgRem(dto.getUgRem());
			vo.setBusLen(dto.getBusLen());
			vo.setBraking(dto.getBraking());
			vo.setPowerCd(dto.getPowerCd());
			vo.setPotionCfg(dto.getPotionCfg());
			vo.setHoldSpace(dto.getHoldSpace());
			vo.setBatDeg(dto.getBatDeg());
			vo.setEndMileage(dto.getEndMileage());

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setAudVisitAgriculturalVO(AudVisitAgriculturalVOTransform.toVO(dto.getAudVisitAgriculturalDTO()));
			vo.setAudVisitCarVO(AudVisitCarVOTransform.toVO(dto.getAudVisitCarDTO()));
			vo.setAudVisitRecordVOList(AudVisitRecordVOTransform.toVOList(dto.getAudVisitRecordDTOList()));
			vo.setAudVisitTkVO(AudVisitTkVOTransform.toVO(dto.getAudVisitTkDTO()));
			vo.setAudCreditInfoVO(AudCreditInfoVOTransform.toVO(dto.getAudCreditInfoDTO()));
			vo.setAgentCardStateCdNm(dto.getAgentCardStateCdNm());
			vo.setEqmtAddressCdNm(dto.getEqmtAddressCdNm());
			vo.setVehiclesDoorCdNm(dto.getVehiclesDoorCdNm());
			vo.setCircuitType(dto.getCircuitType());
			vo.setCargoWeigth(dto.getCargoWeigth());
			vo.setCargoVomule(dto.getCargoVomule());
			vo.setHandingMode(dto.getHandingMode());
			vo.setCircuitEfficiency(dto.getCircuitEfficiency());
			vo.setFare(dto.getFare());
			vo.setRgnCyCd(dto.getRgnCyCd());
			vo.setRgnCyCds(dto.getRgnCyCds());
			vo.setRgnPrCd(dto.getRgnPrCd());
			vo.setRgnPrCds(dto.getRgnPrCds());
			vo.setSchr_6(dto.getSchr_6());//审批类型
			vo.setSchr_6Nm(dto.getSchr_6Nm());
			vo.setVisitStatus(dto.getVisitStatus());//回访状态
			vo.setLastVisitTm(dto.getLastVisitTm());
			vo.setLastAuditorId(dto.getLastAuditorId());
			vo.setLastAuditorNm(dto.getLastAuditorNm());
			vo.setAuditorName(dto.getAuditorName());
			vo.setAuditorId(dto.getAuditorId());
			vo.setAccountManagerNm(dto.getAccountManagerNm());
			vo.setReturnVisitId(dto.getReturnVisitId());
			vo.setReturnVisitNm(dto.getReturnVisitNm());
			vo.setLsDt(dto.getLsDt());
			vo.setFstRepayDt(dto.getFstRepayDt());
			vo.setDataInitSource(dto.getDataInitSource());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto AudReturnVisitVO
	 * @return AudReturnVisitDTO
	 */
	public static AudReturnVisitDTO toDTO(AudReturnVisitVO vo) {
		AudReturnVisitDTO dto = null;
		if (vo != null) {
			dto = new AudReturnVisitDTO();
			dto.setId(vo.getId());
			dto.setProjectId(vo.getProjectId());//项目ID
			dto.setProIntId(vo.getProIntId());//流程实例ID
			dto.setTimes(vo.getTimes());//融资次数
			dto.setEquipmentNum(vo.getEquipmentNum());//设备数量
			dto.setCarBrandCd(vo.getCarBrandCd());//品牌/车型-数据字典
			dto.setMotorHorsepower(vo.getMotorHorsepower());//发动机马力
			dto.setEmissionStandard(vo.getEmissionStandard());//排放/排量
			dto.setGearbox(vo.getGearbox());//变速箱
			dto.setContainerSize(vo.getContainerSize());//货箱规格（长*宽*高）
			dto.setIsExistTrunc(vo.getIsExistTrunc());//是否含挂车
			dto.setTruncStandard(vo.getTruncStandard());//挂车规格
			dto.setTruncConfig(vo.getTruncConfig());//挂车配置
			dto.setEquipmentName(vo.getEquipmentName());//车辆设备名称
			dto.setYeayAmt(vo.getYeayAmt());//年款
			dto.setUsefulLife(vo.getUsefulLife());//使用年限（二手）
			dto.setMileage(vo.getMileage());//里程数（二手）
			dto.setOtherConfig(vo.getOtherConfig());//其它配置
			dto.setSeating(vo.getSeating());//座位数
			dto.setMainMarketPrice(vo.getMainMarketPrice());//主车价格
			dto.setTruncMarketPrice(vo.getTruncMarketPrice());//挂车价格
			dto.setPickCardCd(vo.getPickCardCd());//提车情况-AUD0024
			dto.setStatusCd(vo.getStatusCd());//上牌情况-AUD0025
			dto.setCardDate(vo.getCardDate());//上牌时间
			dto.setItemPay(vo.getItemPay());//款项缴纳情况
			dto.setLeaseTerm(vo.getLeaseTerm());//融资期限
			dto.setMonthRepayment(vo.getMonthRepayment());//月还款
			dto.setAgentCardStateCd(vo.getAgentCardStateCd());//代扣卡-AUD0026
			dto.setEqmtAddressCd(vo.getEqmtAddressCd());//设备位置-AUD0027
			dto.setVehiclesDoorCd(vo.getVehiclesDoorCd());//车辆上户-AUD0028
			dto.setAffiliatedCompany(vo.getAffiliatedCompany());//挂靠公司名称
			dto.setSubsidyAmt(vo.getSubsidyAmt());//补贴款
			dto.setPickCardTm(vo.getPickCardTm());//提车时间
			dto.setDealerAmt(vo.getDealerAmt());//经销商垫款金额
			dto.setFirstPayPct(vo.getFirstPayPct());//首付比例
			dto.setFinancingAmt(vo.getFinancingAmt());//融资总金额
			dto.setSmallRepaymentAmt(vo.getSmallRepaymentAmt());//小额还款金额
			dto.setLargeRepaymentAmt(vo.getLargeRepaymentAmt());//大额还款金额
			dto.setYearNetAmt(vo.getYearNetAmt());//承租人年净收入
			dto.setLoanPrjAmt(vo.getLoanPrjAmt());//贷款项目及金额
			dto.setYearCostAmt(vo.getYearCostAmt());//年日常生活开销
			dto.setYearDominateAmt(vo.getYearDominateAmt());//年可支配资金
			dto.setIsPress(vo.getIsPress());//大额还款是否有压力
			dto.setGuraRl(vo.getGuraRl());
			dto.setGuraRem(vo.getGuraRem());
			dto.setUgRl(vo.getUgRl());
			dto.setUgRem(vo.getUgRem());
			dto.setBusLen(vo.getBusLen());
			dto.setBraking(vo.getBraking());
			dto.setPowerCd(vo.getPowerCd());
			dto.setPotionCfg(vo.getPotionCfg());
			dto.setHoldSpace(vo.getHoldSpace());
			dto.setBatDeg(vo.getBatDeg());
			dto.setEndMileage(vo.getEndMileage());

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setAudVisitAgriculturalDTO(AudVisitAgriculturalVOTransform.toDTO(vo.getAudVisitAgriculturalVO()));
			dto.setAudVisitCarDTO(AudVisitCarVOTransform.toDTO(vo.getAudVisitCarVO()));
			dto.setAudVisitRecordDTOList(AudVisitRecordVOTransform.toDTOList(vo.getAudVisitRecordVOList()));
			dto.setAudVisitTkDTO(AudVisitTkVOTransform.toDTO(vo.getAudVisitTkVO()));
			dto.setAudCreditInfoDTO(AudCreditInfoVOTransform.toDTO(vo.getAudCreditInfoVO()));
			dto.setCircuitType(vo.getCircuitType());
			dto.setCargoWeigth(vo.getCargoWeigth());
			dto.setCargoVomule(vo.getCargoVomule());
			dto.setHandingMode(vo.getHandingMode());
			dto.setCircuitEfficiency(vo.getCircuitEfficiency());
			dto.setFare(vo.getFare());
			dto.setRgnCyCd(vo.getRgnCyCd());
			dto.setRgnCyCds(vo.getRgnCyCds());
			dto.setRgnPrCd(vo.getRgnPrCd());
			dto.setRgnPrCds(vo.getRgnPrCds());
			dto.setSchr_6(vo.getSchr_6());
			dto.setSchr_6Nm(vo.getSchr_6Nm());
			dto.setVisitStatus(vo.getVisitStatus());
			dto.setLastVisitTm(vo.getLastVisitTm());
			dto.setLastAuditorId(vo.getLastAuditorId());
			dto.setLastAuditorNm(vo.getLastAuditorNm());
			dto.setAuditorName(vo.getAuditorName());
			dto.setAuditorId(vo.getAuditorId());
			dto.setAccountManagerNm(vo.getAccountManagerNm());
			dto.setReturnVisitId(vo.getReturnVisitId());
			dto.setReturnVisitNm(vo.getReturnVisitNm());
			dto.setLsDt(vo.getLsDt());
			dto.setFstRepayDt(vo.getFstRepayDt());
			dto.setDataInitSource(vo.getDataInitSource());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<AudReturnVisitDTO>
	 * @return List<AudReturnVisitVO>
	 */
	public static List<AudReturnVisitVO> toVOList(List<AudReturnVisitDTO> list) {
		List<AudReturnVisitVO>  voList = new ArrayList<AudReturnVisitVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AudReturnVisitDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<AudReturnVisitVO>
	 * @return List<AudReturnVisitDTO>
	 */
	public static List<AudReturnVisitDTO> toDTOList(List<AudReturnVisitVO> list) {
		List<AudReturnVisitDTO>  dtoList = new ArrayList<AudReturnVisitDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AudReturnVisitVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
